/**
 * 文件名：@JDKSerializer.java <br/>
 * 包名：cn.efunbox.afw.data.serializer <br/>
 * 项目名：afw-data <br/>
 * @author xtwin <br/>
 */
package cn.efunbox.afw.data.serializer;

import java.io.Serializable;

import org.springframework.util.SerializationUtils;

/**
 * 类名：JDKSerializer  <br />
 *
 * 功能：JDK中的对象序列化与反序列化机制实现
 *
 * @author xtwin <br />
 * 创建时间：2016年8月8日 上午11:13:39  <br />
 * @version 2016年8月8日
 */
public class JDKSerializer<T extends Serializable> implements Serializer<T> {

	/**
	 * 功能: 序列化 <br/>
	 * 
	 * 重写：xtwin <br/>
	 * 
	 * @version ：2016年8月8日 上午11:14:28<br/>
	 * 
	 * @param target
	 * @return
	 * @throws Exception <br/>
	 * @see cn.efunbox.afw.data.serializer.Serializer#serialize(java.lang.Object)
	 */
	@Override
	public byte[] serialize(T target) throws Exception {
		return SerializationUtils.serialize(target);
	}

	/**
	 * 功能: 反序列化 <br/>
	 * 
	 * 重写：xtwin <br/>
	 * 
	 * @version ：2016年8月8日 上午11:14:28<br/>
	 * 
	 * @param bytes
	 * @return
	 * @throws Exception <br/>
	 * @see cn.efunbox.afw.data.serializer.Serializer#deserialize(byte[])
	 */
	@SuppressWarnings("unchecked")
	@Override
	public T deserialize(byte[] bytes) throws Exception {
		return (T) SerializationUtils.deserialize(bytes);
	}

}
